package net.qiqbframework.loadhanding;

import net.qiqbframework.messaging.annotation.MessageExecutableHandler;

import java.util.Optional;

public interface LoadExecutableHandler extends MessageExecutableHandler {
    /**
     * 业务id
     *
     * @return
     */
    Optional<String> bizIdentifierName();


    /**
     * 业务ID类型。
     *
     * @return
     */
    Class<?> bizIdentifierType();

    /**
     * 获取不到业务ID时候，可以尝试自动自动更新
     *
     * @param bizIdentifierName
     */
    void updateBizIdentifierName(String bizIdentifierName);

    String aggregateName();

    /**
     * 聚合类型
     *
     * @return
     */
    Class<?> aggregateType();


}
